/* flatpickr v4.6.9,, @license MIT */ ! function(e, t) {
	"object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).flatpickr = t()
}(this, (function() {
	"use strict";
	var e = function() {
		return(e = Object.assign || function(e) {
			for(var t, n = 1, a = arguments.length; n < a; n++)
				for(var i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
			return e
		}).apply(this, arguments)
	};

	function t() {
		for(var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length;
		var a = Array(e),
			i = 0;
		for(t = 0; t < n; t++)
			for(var o = arguments[t], r = 0, l = o.length; r < l; r++, i++) a[i] = o[r];
		return a
	}
	var n = ["onChange", "onClose", "onDayCreate", "onDestroy", "onKeyDown", "onMonthChange", "onOpen", "onParseConfig", "onReady", "onValueUpdate", "onYearChange", "onPreCalendarPosition"],
		a = {
			_disable: [],
			allowInput: !1,
			allowInvalidPreload: !1,
			altFormat: "F j, Y",
			altInput: !1,
			altInputClass: "form-control input",
			animate: "object" == typeof window && -1 === window.navigator.userAgent.indexOf("MSIE"),
			ariaDateFormat: "F j, Y",
			autoFillDefaultTime: !0,
			clickOpens: !0,
			closeOnSelect: !0,
			conjunction: ", ",
			dateFormat: "Y-m-d",
			defaultHour: 12,
			defaultMinute: 0,
			defaultSeconds: 0,
			disable: [],
			disableMobile: !1,
			enableSeconds: !1,
			enableTime: !1,
			errorHandler: function(e) {
				return "undefined" != typeof console && console.warn(e)
			},
			getWeek: function(e) {
				var t = new Date(e.getTime());
				t.setHours(0, 0, 0, 0), t.setDate(t.getDate() + 3 - (t.getDay() + 6) % 7);
				var n = new Date(t.getFullYear(), 0, 4);
				return 1 + Math.round(((t.getTime() - n.getTime()) / 864e5 - 3 + (n.getDay() + 6) % 7) / 7)
			},
			hourIncrement: 1,
			ignoredFocusElements: [],
			inline: !1,
			locale: "default",
			minuteIncrement: 5,
			mode: "single",
			monthSelectorType: "dropdown",
			nextArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>",
			noCalendar: !1,
			now: new Date,
			onChange: [],
			onClose: [],
			onDayCreate: [],
			onDestroy: [],
			onKeyDown: [],
			onMonthChange: [],
			onOpen: [],
			onParseConfig: [],
			onReady: [],
			onValueUpdate: [],
			onYearChange: [],
			onPreCalendarPosition: [],
			plugins: [],
			position: "auto",
			positionElement: void 0,
			prevArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>",
			shorthandCurrentMonth: !1,
			showMonths: 1,
			static: !1,
			time_24hr: !1,
			weekNumbers: !1,
			wrap: !1
		},
		i = {
			weekdays: {
				shorthand: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
				longhand: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
			},
			months: {
				shorthand: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
				longhand: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
			},
			daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
			firstDayOfWeek: 0,
			ordinal: function(e) {
				var t = e % 100;
				if(t > 3 && t < 21) return "th";
				switch(t % 10) {
					case 1:
						return "st";
					case 2:
						return "nd";
					case 3:
						return "rd";
					default:
						return "th"
				}
			},
			rangeSeparator: " to ",
			weekAbbreviation: "Wk",
			scrollTitle: "Scroll to increment",
			toggleTitle: "Click to toggle",
			amPM: ["AM", "PM"],
			yearAriaLabel: "Year",
			monthAriaLabel: "Month",
			hourAriaLabel: "Hour",
			minuteAriaLabel: "Minute",
			time_24hr: !1
		},
		o = function(e, t) {
			return void 0 === t && (t = 2), ("000" + e).slice(-1 * t)
		},
		r = function(e) {
			return !0 === e ? 1 : 0
		};

	function l(e, t) {
		var n;
		return function() {
			var a = this;
			clearTimeout(n), n = setTimeout((function() {
				return e.apply(a, arguments)
			}), t)
		}
	}
	var c = function(e) {
		return e instanceof Array ? e : [e]
	};

	function d(e, t, n) {
		if(!0 === n) return e.classList.add(t);
		e.classList.remove(t)
	}

	function s(e, t, n) {
		var a = window.document.createElement(e);
		return t = t || "", n = n || "", a.className = t, void 0 !== n && (a.textContent = n), a
	}

	function u(e) {
		for(; e.firstChild;) e.removeChild(e.firstChild)
	}

	function f(e, t) {
		return t(e) ? e : e.parentNode ? f(e.parentNode, t) : void 0
	}

	function m(e, t) {
		var n = s("div", "numInputWrapper"),
			a = s("input", "numInput " + e),
			i = s("span", "arrowUp"),
			o = s("span", "arrowDown");
		if(-1 === navigator.userAgent.indexOf("MSIE 9.0") ? a.type = "number" : (a.type = "text", a.pattern = "\\d*"), void 0 !== t)
			for(var r in t) a.setAttribute(r, t[r]);
		return n.appendChild(a), n.appendChild(i), n.appendChild(o), n
	}

	function g(e) {
		try {
			return "function" == typeof e.composedPath ? e.composedPath()[0] : e.target
		} catch(t) {
			return e.target
		}
	}
	var p = function() {},
		h = function(e, t, n) {
			return n.months[t ? "shorthand" : "longhand"][e]
		},
		v = {
			D: p,
			F: function(e, t, n) {
				e.setMonth(n.months.longhand.indexOf(t))
			},
			G: function(e, t) {
				e.setHours(parseFloat(t))
			},
			H: function(e, t) {
				e.setHours(parseFloat(t))
			},
			J: function(e, t) {
				e.setDate(parseFloat(t))
			},
			K: function(e, t, n) {
				e.setHours(e.getHours() % 12 + 12 * r(new RegExp(n.amPM[1], "i").test(t)))
			},
			M: function(e, t, n) {
				e.setMonth(n.months.shorthand.indexOf(t))
			},
			S: function(e, t) {
				e.setSeconds(parseFloat(t))
			},
			U: function(e, t) {
				return new Date(1e3 * parseFloat(t))
			},
			W: function(e, t, n) {
				var a = parseInt(t),
					i = new Date(e.getFullYear(), 0, 2 + 7 * (a - 1), 0, 0, 0, 0);
				return i.setDate(i.getDate() - i.getDay() + n.firstDayOfWeek), i
			},
			Y: function(e, t) {
				e.setFullYear(parseFloat(t))
			},
			Z: function(e, t) {
				return new Date(t)
			},
			d: function(e, t) {
				e.setDate(parseFloat(t))
			},
			h: function(e, t) {
				e.setHours(parseFloat(t))
			},
			i: function(e, t) {
				e.setMinutes(parseFloat(t))
			},
			j: function(e, t) {
				e.setDate(parseFloat(t))
			},
			l: p,
			m: function(e, t) {
				e.setMonth(parseFloat(t) - 1)
			},
			n: function(e, t) {
				e.setMonth(parseFloat(t) - 1)
			},
			s: function(e, t) {
				e.setSeconds(parseFloat(t))
			},
			u: function(e, t) {
				return new Date(parseFloat(t))
			},
			w: p,
			y: function(e, t) {
				e.setFullYear(2e3 + parseFloat(t))
			}
		},
		D = {
			D: "(\\w+)",
			F: "(\\w+)",
			G: "(\\d\\d|\\d)",
			H: "(\\d\\d|\\d)",
			J: "(\\d\\d|\\d)\\w+",
			K: "",
			M: "(\\w+)",
			S: "(\\d\\d|\\d)",
			U: "(.+)",
			W: "(\\d\\d|\\d)",
			Y: "(\\d{4})",
			Z: "(.+)",
			d: "(\\d\\d|\\d)",
			h: "(\\d\\d|\\d)",
			i: "(\\d\\d|\\d)",
			j: "(\\d\\d|\\d)",
			l: "(\\w+)",
			m: "(\\d\\d|\\d)",
			n: "(\\d\\d|\\d)",
			s: "(\\d\\d|\\d)",
			u: "(.+)",
			w: "(\\d\\d|\\d)",
			y: "(\\d{2})"
		},
		w = {
			Z: function(e) {
				return e.toISOString()
			},
			D: function(e, t, n) {
				return t.weekdays.shorthand[w.w(e, t, n)]
			},
			F: function(e, t, n) {
				return h(w.n(e, t, n) - 1, !1, t)
			},
			G: function(e, t, n) {
				return o(w.h(e, t, n))
			},
			H: function(e) {
				return o(e.getHours())
			},
			J: function(e, t) {
				return void 0 !== t.ordinal ? e.getDate() + t.ordinal(e.getDate()) : e.getDate()
			},
			K: function(e, t) {
				return t.amPM[r(e.getHours() > 11)]
			},
			M: function(e, t) {
				return h(e.getMonth(), !0, t)
			},
			S: function(e) {
				return o(e.getSeconds())
			},
			U: function(e) {
				return e.getTime() / 1e3
			},
			W: function(e, t, n) {
				return n.getWeek(e)
			},
			Y: function(e) {
				return o(e.getFullYear(), 4)
			},
			d: function(e) {
				return o(e.getDate())
			},
			h: function(e) {
				return e.getHours() % 12 ? e.getHours() % 12 : 12
			},
			i: function(e) {
				return o(e.getMinutes())
			},
			j: function(e) {
				return e.getDate()
			},
			l: function(e, t) {
				return t.weekdays.longhand[e.getDay()]
			},
			m: function(e) {
				return o(e.getMonth() + 1)
			},
			n: function(e) {
				return e.getMonth() + 1
			},
			s: function(e) {
				return e.getSeconds()
			},
			u: function(e) {
				return e.getTime()
			},
			w: function(e) {
				return e.getDay()
			},
			y: function(e) {
				return String(e.getFullYear()).substring(2)
			}
		},
		b = function(e) {
			var t = e.config,
				n = void 0 === t ? a : t,
				o = e.l10n,
				r = void 0 === o ? i : o,
				l = e.isMobile,
				c = void 0 !== l && l;
			return function(e, t, a) {
				var i = a || r;
				return void 0 === n.formatDate || c ? t.split("").map((function(t, a, o) {
					return w[t] && "\\" !== o[a - 1] ? w[t](e, i, n) : "\\" !== t ? t : ""
				})).join("") : n.formatDate(e, t, i)
			}
		},
		C = function(e) {
			var t = e.config,
				n = void 0 === t ? a : t,
				o = e.l10n,
				r = void 0 === o ? i : o;
			return function(e, t, i, o) {
				if(0 === e || e) {
					var l, c = o || r,
						d = e;
					if(e instanceof Date) l = new Date(e.getTime());
					else if("string" != typeof e && void 0 !== e.toFixed) l = new Date(e);
					else if("string" == typeof e) {
						var s = t || (n || a).dateFormat,
							u = String(e).trim();
						if("today" === u) l = new Date, i = !0;
						else if(/Z$/.test(u) || /GMT$/.test(u)) l = new Date(e);
						else if(n && n.parseDate) l = n.parseDate(e, s);
						else {
							l = n && n.noCalendar ? new Date((new Date).setHours(0, 0, 0, 0)) : new Date((new Date).getFullYear(), 0, 1, 0, 0, 0, 0);
							for(var f = void 0, m = [], g = 0, p = 0, h = ""; g < s.length; g++) {
								var w = s[g],
									b = "\\" === w,
									C = "\\" === s[g - 1] || b;
								if(D[w] && !C) {
									h += D[w];
									var M = new RegExp(h).exec(e);
									M && (f = !0) && m["Y" !== w ? "push" : "unshift"]({
										fn: v[w],
										val: M[++p]
									})
								} else b || (h += ".");
								m.forEach((function(e) {
									var t = e.fn,
										n = e.val;
									return l = t(l, n, c) || l
								}))
							}
							l = f ? l : void 0
						}
					}
					if(l instanceof Date && !isNaN(l.getTime())) return !0 === i && l.setHours(0, 0, 0, 0), l;
					n.errorHandler(new Error("Invalid date provided: " + d))
				}
			}
		};

	function M(e, t, n) {
		return void 0 === n && (n = !0), !1 !== n ? new Date(e.getTime()).setHours(0, 0, 0, 0) - new Date(t.getTime()).setHours(0, 0, 0, 0) : e.getTime() - t.getTime()
	}
	var y = 864e5;

	function x(e) {
		var t = e.defaultHour,
			n = e.defaultMinute,
			a = e.defaultSeconds;
		if(void 0 !== e.minDate) {
			var i = e.minDate.getHours(),
				o = e.minDate.getMinutes(),
				r = e.minDate.getSeconds();
			t < i && (t = i), t === i && n < o && (n = o), t === i && n === o && a < r && (a = e.minDate.getSeconds())
		}
		if(void 0 !== e.maxDate) {
			var l = e.maxDate.getHours(),
				c = e.maxDate.getMinutes();
			(t = Math.min(t, l)) === l && (n = Math.min(c, n)), t === l && n === c && (a = e.maxDate.getSeconds())
		}
		return {
			hours: t,
			minutes: n,
			seconds: a
		}
	}
	"function" != typeof Object.assign && (Object.assign = function(e) {
		for(var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
		if(!e) throw TypeError("Cannot convert undefined or null to object");
		for(var a = function(t) {
				t && Object.keys(t).forEach((function(n) {
					return e[n] = t[n]
				}))
			}, i = 0, o = t; i < o.length; i++) {
			var r = o[i];
			a(r)
		}
		return e
	});

	function E(p, v) {
		var w = {
			config: e(e({}, a), T.defaultConfig),
			l10n: i
		};

		function E(e) {
			return e.bind(w)
		}

		function k() {
			var e = w.config;
			!1 === e.weekNumbers && 1 === e.showMonths || !0 !== e.noCalendar && window.requestAnimationFrame((function() {
				if(void 0 !== w.calendarContainer && (w.calendarContainer.style.visibility = "hidden", w.calendarContainer.style.display = "block"), void 0 !== w.daysContainer) {
					var t = (w.days.offsetWidth + 1) * e.showMonths;
					w.daysContainer.style.width = t + "px", w.calendarContainer.style.width = t + (void 0 !== w.weekWrapper ? w.weekWrapper.offsetWidth : 0) + "px", w.calendarContainer.style.removeProperty("visibility"), w.calendarContainer.style.removeProperty("display")
				}
			}))
		}

		function I(e) {
			if(0 === w.selectedDates.length) {
				var t = void 0 === w.config.minDate || M(new Date, w.config.minDate) >= 0 ? new Date : new Date(w.config.minDate.getTime()),
					n = x(w.config);
				t.setHours(n.hours, n.minutes, n.seconds, t.getMilliseconds()), w.selectedDates = [t], w.latestSelectedDateObj = t
			}
			void 0 !== e && "blur" !== e.type && function(e) {
				e.preventDefault();
				var t = "keydown" === e.type,
					n = g(e),
					a = n;
				void 0 !== w.amPM && n === w.amPM && (w.amPM.textContent = w.l10n.amPM[r(w.amPM.textContent === w.l10n.amPM[0])]);
				var i = parseFloat(a.getAttribute("min")),
					l = parseFloat(a.getAttribute("max")),
					c = parseFloat(a.getAttribute("step")),
					d = parseInt(a.value, 10),
					s = e.delta || (t ? 38 === e.which ? 1 : -1 : 0),
					u = d + c * s;
				if(void 0 !== a.value && 2 === a.value.length) {
					var f = a === w.hourElement,
						m = a === w.minuteElement;
					u < i ? (u = l + u + r(!f) + (r(f) && r(!w.amPM)), m && j(void 0, -1, w.hourElement)) : u > l && (u = a === w.hourElement ? u - l - r(!w.amPM) : i, m && j(void 0, 1, w.hourElement)), w.amPM && f && (1 === c ? u + d === 23 : Math.abs(u - d) > c) && (w.amPM.textContent = w.l10n.amPM[r(w.amPM.textContent === w.l10n.amPM[0])]), a.value = o(u)
				}
			}(e);
			var a = w._input.value;
			S(), be(), w._input.value !== a && w._debouncedChange()
		}

		function S() {
			if(void 0 !== w.hourElement && void 0 !== w.minuteElement) {
				var e, t, n = (parseInt(w.hourElement.value.slice(-2), 10) || 0) % 24,
					a = (parseInt(w.minuteElement.value, 10) || 0) % 60,
					i = void 0 !== w.secondElement ? (parseInt(w.secondElement.value, 10) || 0) % 60 : 0;
				void 0 !== w.amPM && (e = n, t = w.amPM.textContent, n = e % 12 + 12 * r(t === w.l10n.amPM[1]));
				var o = void 0 !== w.config.minTime || w.config.minDate && w.minDateHasTime && w.latestSelectedDateObj && 0 === M(w.latestSelectedDateObj, w.config.minDate, !0);
				if(void 0 !== w.config.maxTime || w.config.maxDate && w.maxDateHasTime && w.latestSelectedDateObj && 0 === M(w.latestSelectedDateObj, w.config.maxDate, !0)) {
					var l = void 0 !== w.config.maxTime ? w.config.maxTime : w.config.maxDate;
					(n = Math.min(n, l.getHours())) === l.getHours() && (a = Math.min(a, l.getMinutes())), a === l.getMinutes() && (i = Math.min(i, l.getSeconds()))
				}
				if(o) {
					var c = void 0 !== w.config.minTime ? w.config.minTime : w.config.minDate;
					(n = Math.max(n, c.getHours())) === c.getHours() && a < c.getMinutes() && (a = c.getMinutes()), a === c.getMinutes() && (i = Math.max(i, c.getSeconds()))
				}
				O(n, a, i)
			}
		}

		function _(e) {
			var t = e || w.latestSelectedDateObj;
			t && O(t.getHours(), t.getMinutes(), t.getSeconds())
		}

		function O(e, t, n) {
			void 0 !== w.latestSelectedDateObj && w.latestSelectedDateObj.setHours(e % 24, t, n || 0, 0), w.hourElement && w.minuteElement && !w.isMobile && (w.hourElement.value = o(w.config.time_24hr ? e : (12 + e) % 12 + 12 * r(e % 12 == 0)), w.minuteElement.value = o(t), void 0 !== w.amPM && (w.amPM.textContent = w.l10n.amPM[r(e >= 12)]), void 0 !== w.secondElement && (w.secondElement.value = o(n)))
		}

		function F(e) {
			var t = g(e),
				n = parseInt(t.value) + (e.delta || 0);
			(n / 1e3 > 1 || "Enter" === e.key && !/[^\d]/.test(n.toString())) && Q(n)
		}

		function A(e, t, n, a) {
			return t instanceof Array ? t.forEach((function(t) {
				return A(e, t, n, a)
			})) : e instanceof Array ? e.forEach((function(e) {
				return A(e, t, n, a)
			})) : (e.addEventListener(t, n, a), void w._handlers.push({
				remove: function() {
					return e.removeEventListener(t, n)
				}
			}))
		}

		function N() {
			pe("onChange")
		}

		function P(e, t) {
			var n = void 0 !== e ? w.parseDate(e) : w.latestSelectedDateObj || (w.config.minDate && w.config.minDate > w.now ? w.config.minDate : w.config.maxDate && w.config.maxDate < w.now ? w.config.maxDate : w.now),
				a = w.currentYear,
				i = w.currentMonth;
			try {
				void 0 !== n && (w.currentYear = n.getFullYear(), w.currentMonth = n.getMonth())
			} catch(e) {
				e.message = "Invalid date supplied: " + n, w.config.errorHandler(e)
			}
			t && w.currentYear !== a && (pe("onYearChange"), K()), !t || w.currentYear === a && w.currentMonth === i || pe("onMonthChange"), w.redraw()
		}

		function Y(e) {
			var t = g(e);
			~t.className.indexOf("arrow") && j(e, t.classList.contains("arrowUp") ? 1 : -1)
		}

		function j(e, t, n) {
			var a = e && g(e),
				i = n || a && a.parentNode && a.parentNode.firstChild,
				o = he("increment");
			o.delta = t, i && i.dispatchEvent(o)
		}

		function H(e, t, n, a) {
			var i = X(t, !0),
				o = s("span", "flatpickr-day " + e, t.getDate().toString());
			return o.dateObj = t, o.$i = a, o.setAttribute("aria-label", w.formatDate(t, w.config.ariaDateFormat)), -1 === e.indexOf("hidden") && 0 === M(t, w.now) && (w.todayDateElem = o, o.classList.add("today"), o.setAttribute("aria-current", "date")), i ? (o.tabIndex = -1, ve(t) && (o.classList.add("selected"), w.selectedDateElem = o, "range" === w.config.mode && (d(o, "startRange", w.selectedDates[0] && 0 === M(t, w.selectedDates[0], !0)), d(o, "endRange", w.selectedDates[1] && 0 === M(t, w.selectedDates[1], !0)), "nextMonthDay" === e && o.classList.add("inRange")))) : o.classList.add("flatpickr-disabled"), "range" === w.config.mode && function(e) {
				return !("range" !== w.config.mode || w.selectedDates.length < 2) && (M(e, w.selectedDates[0]) >= 0 && M(e, w.selectedDates[1]) <= 0)
			}(t) && !ve(t) && o.classList.add("inRange"), w.weekNumbers && 1 === w.config.showMonths && "prevMonthDay" !== e && n % 7 == 1 && w.weekNumbers.insertAdjacentHTML("beforeend", "<span class='flatpickr-day'>" + w.config.getWeek(t) + "</span>"), pe("onDayCreate", o), o
		}

		function L(e) {
			e.focus(), "range" === w.config.mode && ae(e)
		}

		function W(e) {
			for(var t = e > 0 ? 0 : w.config.showMonths - 1, n = e > 0 ? w.config.showMonths : -1, a = t; a != n; a += e)
				for(var i = w.daysContainer.children[a], o = e > 0 ? 0 : i.children.length - 1, r = e > 0 ? i.children.length : -1, l = o; l != r; l += e) {
					var c = i.children[l];
					if(-1 === c.className.indexOf("hidden") && X(c.dateObj)) return c
				}
		}

		function R(e, t) {
			var n = ee(document.activeElement || document.body),
				a = void 0 !== e ? e : n ? document.activeElement : void 0 !== w.selectedDateElem && ee(w.selectedDateElem) ? w.selectedDateElem : void 0 !== w.todayDateElem && ee(w.todayDateElem) ? w.todayDateElem : W(t > 0 ? 1 : -1);
			void 0 === a ? w._input.focus() : n ? function(e, t) {
				for(var n = -1 === e.className.indexOf("Month") ? e.dateObj.getMonth() : w.currentMonth, a = t > 0 ? w.config.showMonths : -1, i = t > 0 ? 1 : -1, o = n - w.currentMonth; o != a; o += i)
					for(var r = w.daysContainer.children[o], l = n - w.currentMonth === o ? e.$i + t : t < 0 ? r.children.length - 1 : 0, c = r.children.length, d = l; d >= 0 && d < c && d != (t > 0 ? c : -1); d += i) {
						var s = r.children[d];
						if(-1 === s.className.indexOf("hidden") && X(s.dateObj) && Math.abs(e.$i - d) >= Math.abs(t)) return L(s)
					}
				w.changeMonth(i), R(W(i), 0)
			}(a, t) : L(a)
		}

		function B(e, t) {
			for(var n = (new Date(e, t, 1).getDay() - w.l10n.firstDayOfWeek + 7) % 7, a = w.utils.getDaysInMonth((t - 1 + 12) % 12, e), i = w.utils.getDaysInMonth(t, e), o = window.document.createDocumentFragment(), r = w.config.showMonths > 1, l = r ? "prevMonthDay hidden" : "prevMonthDay", c = r ? "nextMonthDay hidden" : "nextMonthDay", d = a + 1 - n, u = 0; d <= a; d++, u++) o.appendChild(H(l, new Date(e, t - 1, d), d, u));
			for(d = 1; d <= i; d++, u++) o.appendChild(H("", new Date(e, t, d), d, u));
			for(var f = i + 1; f <= 42 - n && (1 === w.config.showMonths || u % 7 != 0); f++, u++) o.appendChild(H(c, new Date(e, t + 1, f % i), f, u));
			var m = s("div", "dayContainer");
			return m.appendChild(o), m
		}

		function J() {
			if(void 0 !== w.daysContainer) {
				u(w.daysContainer), w.weekNumbers && u(w.weekNumbers);
				for(var e = document.createDocumentFragment(), t = 0; t < w.config.showMonths; t++) {
					var n = new Date(w.currentYear, w.currentMonth, 1);
					n.setMonth(w.currentMonth + t), e.appendChild(B(n.getFullYear(), n.getMonth()))
				}
				w.daysContainer.appendChild(e), w.days = w.daysContainer.firstChild, "range" === w.config.mode && 1 === w.selectedDates.length && ae()
			}
		}

		function K() {
			if(!(w.config.showMonths > 1 || "dropdown" !== w.config.monthSelectorType)) {
				var e = function(e) {
					return !(void 0 !== w.config.minDate && w.currentYear === w.config.minDate.getFullYear() && e < w.config.minDate.getMonth()) && !(void 0 !== w.config.maxDate && w.currentYear === w.config.maxDate.getFullYear() && e > w.config.maxDate.getMonth())
				};
				w.monthsDropdownContainer.tabIndex = -1, w.monthsDropdownContainer.innerHTML = "";
				for(var t = 0; t < 12; t++)
					if(e(t)) {
						var n = s("option", "flatpickr-monthDropdown-month");
						n.value = new Date(w.currentYear, t).getMonth().toString(), n.textContent = h(t, w.config.shorthandCurrentMonth, w.l10n), n.tabIndex = -1, w.currentMonth === t && (n.selected = !0), w.monthsDropdownContainer.appendChild(n)
					}
			}
		}

		function U() {
			var e, t = s("div", "flatpickr-month"),
				n = window.document.createDocumentFragment();
			w.config.showMonths > 1 || "static" === w.config.monthSelectorType ? e = s("span", "cur-month") : (w.monthsDropdownContainer = s("select", "flatpickr-monthDropdown-months"), w.monthsDropdownContainer.setAttribute("aria-label", w.l10n.monthAriaLabel), A(w.monthsDropdownContainer, "change", (function(e) {
				var t = g(e),
					n = parseInt(t.value, 10);
				w.changeMonth(n - w.currentMonth), pe("onMonthChange")
			})), K(), e = w.monthsDropdownContainer);
			var a = m("cur-year", {
					tabindex: "-1"
				}),
				i = a.getElementsByTagName("input")[0];
			i.setAttribute("aria-label", w.l10n.yearAriaLabel), w.config.minDate && i.setAttribute("min", w.config.minDate.getFullYear().toString()), w.config.maxDate && (i.setAttribute("max", w.config.maxDate.getFullYear().toString()), i.disabled = !!w.config.minDate && w.config.minDate.getFullYear() === w.config.maxDate.getFullYear());
			var o = s("div", "flatpickr-current-month");
			return o.appendChild(e), o.appendChild(a), n.appendChild(o), t.appendChild(n), {
				container: t,
				yearElement: i,
				monthElement: e
			}
		}

		function q() {
			u(w.monthNav), w.monthNav.appendChild(w.prevMonthNav), w.config.showMonths && (w.yearElements = [], w.monthElements = []);
			for(var e = w.config.showMonths; e--;) {
				var t = U();
				w.yearElements.push(t.yearElement), w.monthElements.push(t.monthElement), w.monthNav.appendChild(t.container)
			}
			w.monthNav.appendChild(w.nextMonthNav)
		}

		function $() {
			w.weekdayContainer ? u(w.weekdayContainer) : w.weekdayContainer = s("div", "flatpickr-weekdays");
			for(var e = w.config.showMonths; e--;) {
				var t = s("div", "flatpickr-weekdaycontainer");
				w.weekdayContainer.appendChild(t)
			}
			return z(), w.weekdayContainer
		}

		function z() {
			if(w.weekdayContainer) {
				var e = w.l10n.firstDayOfWeek,
					n = t(w.l10n.weekdays.shorthand);
				e > 0 && e < n.length && (n = t(n.splice(e, n.length), n.splice(0, e)));
				for(var a = w.config.showMonths; a--;) w.weekdayContainer.children[a].innerHTML = "\n      <span class='flatpickr-weekday'>\n        " + n.join("</span><span class='flatpickr-weekday'>") + "\n      </span>\n      "
			}
		}

		function G(e, t) {
			void 0 === t && (t = !0);
			var n = t ? e : e - w.currentMonth;
			n < 0 && !0 === w._hidePrevMonthArrow || n > 0 && !0 === w._hideNextMonthArrow || (w.currentMonth += n, (w.currentMonth < 0 || w.currentMonth > 11) && (w.currentYear += w.currentMonth > 11 ? 1 : -1, w.currentMonth = (w.currentMonth + 12) % 12, pe("onYearChange"), K()), J(), pe("onMonthChange"), De())
		}

		function V(e) {
			return !(!w.config.appendTo || !w.config.appendTo.contains(e)) || w.calendarContainer.contains(e)
		}

		function Z(e) {
			if(w.isOpen && !w.config.inline) {
				var t = g(e),
					n = V(t),
					a = t === w.input || t === w.altInput || w.element.contains(t) || e.path && e.path.indexOf && (~e.path.indexOf(w.input) || ~e.path.indexOf(w.altInput)),
					i = "blur" === e.type ? a && e.relatedTarget && !V(e.relatedTarget) : !a && !n && !V(e.relatedTarget),
					o = !w.config.ignoredFocusElements.some((function(e) {
						return e.contains(t)
					}));
				i && o && (void 0 !== w.timeContainer && void 0 !== w.minuteElement && void 0 !== w.hourElement && "" !== w.input.value && void 0 !== w.input.value && I(), w.close(), w.config && "range" === w.config.mode && 1 === w.selectedDates.length && (w.clear(!1), w.redraw()))
			}
		}

		function Q(e) {
			if(!(!e || w.config.minDate && e < w.config.minDate.getFullYear() || w.config.maxDate && e > w.config.maxDate.getFullYear())) {
				var t = e,
					n = w.currentYear !== t;
				w.currentYear = t || w.currentYear, w.config.maxDate && w.currentYear === w.config.maxDate.getFullYear() ? w.currentMonth = Math.min(w.config.maxDate.getMonth(), w.currentMonth) : w.config.minDate && w.currentYear === w.config.minDate.getFullYear() && (w.currentMonth = Math.max(w.config.minDate.getMonth(), w.currentMonth)), n && (w.redraw(), pe("onYearChange"), K())
			}
		}

		function X(e, t) {
			var n;
			void 0 === t && (t = !0);
			var a = w.parseDate(e, void 0, t);
			if(w.config.minDate && a && M(a, w.config.minDate, void 0 !== t ? t : !w.minDateHasTime) < 0 || w.config.maxDate && a && M(a, w.config.maxDate, void 0 !== t ? t : !w.maxDateHasTime) > 0) return !1;
			if(!w.config.enable && 0 === w.config.disable.length) return !0;
			if(void 0 === a) return !1;
			for(var i = !!w.config.enable, o = null !== (n = w.config.enable) && void 0 !== n ? n : w.config.disable, r = 0, l = void 0; r < o.length; r++) {
				if("function" == typeof(l = o[r]) && l(a)) return i;
				if(l instanceof Date && void 0 !== a && l.getTime() === a.getTime()) return i;
				if("string" == typeof l) {
					var c = w.parseDate(l, void 0, !0);
					return c && c.getTime() === a.getTime() ? i : !i
				}
				if("object" == typeof l && void 0 !== a && l.from && l.to && a.getTime() >= l.from.getTime() && a.getTime() <= l.to.getTime()) return i
			}
			return !i
		}

		function ee(e) {
			return void 0 !== w.daysContainer && (-1 === e.className.indexOf("hidden") && -1 === e.className.indexOf("flatpickr-disabled") && w.daysContainer.contains(e))
		}

		function te(e) {
			!(e.target === w._input) || !(w.selectedDates.length > 0 || w._input.value.length > 0) || e.relatedTarget && V(e.relatedTarget) || w.setDate(w._input.value, !0, e.target === w.altInput ? w.config.altFormat : w.config.dateFormat)
		}

		function ne(e) {
			var t = g(e),
				n = w.config.wrap ? p.contains(t) : t === w._input,
				a = w.config.allowInput,
				i = w.isOpen && (!a || !n),
				o = w.config.inline && n && !a;
			if(13 === e.keyCode && n) {
				if(a) return w.setDate(w._input.value, !0, t === w.altInput ? w.config.altFormat : w.config.dateFormat), t.blur();
				w.open()
			} else if(V(t) || i || o) {
				var r = !!w.timeContainer && w.timeContainer.contains(t);
				switch(e.keyCode) {
					case 13:
						r ? (e.preventDefault(), I(), se()) : ue(e);
						break;
					case 27:
						e.preventDefault(), se();
						break;
					case 8:
					case 46:
						n && !w.config.allowInput && (e.preventDefault(), w.clear());
						break;
					case 37:
					case 39:
						if(r || n) w.hourElement && w.hourElement.focus();
						else if(e.preventDefault(), void 0 !== w.daysContainer && (!1 === a || document.activeElement && ee(document.activeElement))) {
							var l = 39 === e.keyCode ? 1 : -1;
							e.ctrlKey ? (e.stopPropagation(), G(l), R(W(1), 0)) : R(void 0, l)
						}
						break;
					case 38:
					case 40:
						e.preventDefault();
						var c = 40 === e.keyCode ? 1 : -1;
						w.daysContainer && void 0 !== t.$i || t === w.input || t === w.altInput ? e.ctrlKey ? (e.stopPropagation(), Q(w.currentYear - c), R(W(1), 0)) : r || R(void 0, 7 * c) : t === w.currentYearElement ? Q(w.currentYear - c) : w.config.enableTime && (!r && w.hourElement && w.hourElement.focus(), I(e), w._debouncedChange());
						break;
					case 9:
						if(r) {
							var d = [w.hourElement, w.minuteElement, w.secondElement, w.amPM].concat(w.pluginElements).filter((function(e) {
									return e
								})),
								s = d.indexOf(t);
							if(-1 !== s) {
								var u = d[s + (e.shiftKey ? -1 : 1)];
								e.preventDefault(), (u || w._input).focus()
							}
						} else !w.config.noCalendar && w.daysContainer && w.daysContainer.contains(t) && e.shiftKey && (e.preventDefault(), w._input.focus())
				}
			}
			if(void 0 !== w.amPM && t === w.amPM) switch(e.key) {
				case w.l10n.amPM[0].charAt(0):
				case w.l10n.amPM[0].charAt(0).toLowerCase():
					w.amPM.textContent = w.l10n.amPM[0], S(), be();
					break;
				case w.l10n.amPM[1].charAt(0):
				case w.l10n.amPM[1].charAt(0).toLowerCase():
					w.amPM.textContent = w.l10n.amPM[1], S(), be()
			}(n || V(t)) && pe("onKeyDown", e)
		}

		function ae(e) {
			if(1 === w.selectedDates.length && (!e || e.classList.contains("flatpickr-day") && !e.classList.contains("flatpickr-disabled"))) {
				for(var t = e ? e.dateObj.getTime() : w.days.firstElementChild.dateObj.getTime(), n = w.parseDate(w.selectedDates[0], void 0, !0).getTime(), a = Math.min(t, w.selectedDates[0].getTime()), i = Math.max(t, w.selectedDates[0].getTime()), o = !1, r = 0, l = 0, c = a; c < i; c += y) X(new Date(c), !0) || (o = o || c > a && c < i, c < n && (!r || c > r) ? r = c : c > n && (!l || c < l) && (l = c));
				for(var d = 0; d < w.config.showMonths; d++)
					for(var s = w.daysContainer.children[d], u = function(a, i) {
							var c, d, u, f = s.children[a],
								m = f.dateObj.getTime(),
								g = r > 0 && m < r || l > 0 && m > l;
							return g ? (f.classList.add("notAllowed"), ["inRange", "startRange", "endRange"].forEach((function(e) {
								f.classList.remove(e)
							})), "continue") : o && !g ? "continue" : (["startRange", "inRange", "endRange", "notAllowed"].forEach((function(e) {
								f.classList.remove(e)
							})), void(void 0 !== e && (e.classList.add(t <= w.selectedDates[0].getTime() ? "startRange" : "endRange"), n < t && m === n ? f.classList.add("startRange") : n > t && m === n && f.classList.add("endRange"), m >= r && (0 === l || m <= l) && (d = n, u = t, (c = m) > Math.min(d, u) && c < Math.max(d, u)) && f.classList.add("inRange"))))
						}, f = 0, m = s.children.length; f < m; f++) u(f)
			}
		}

		function ie() {
			!w.isOpen || w.config.static || w.config.inline || ce()
		}

		function oe(e) {
			return function(t) {
				var n = w.config["_" + e + "Date"] = w.parseDate(t, w.config.dateFormat),
					a = w.config["_" + ("min" === e ? "max" : "min") + "Date"];
				void 0 !== n && (w["min" === e ? "minDateHasTime" : "maxDateHasTime"] = n.getHours() > 0 || n.getMinutes() > 0 || n.getSeconds() > 0), w.selectedDates && (w.selectedDates = w.selectedDates.filter((function(e) {
					return X(e)
				})), w.selectedDates.length || "min" !== e || _(n), be()), w.daysContainer && (de(), void 0 !== n ? w.currentYearElement[e] = n.getFullYear().toString() : w.currentYearElement.removeAttribute(e), w.currentYearElement.disabled = !!a && void 0 !== n && a.getFullYear() === n.getFullYear())
			}
		}

		function re() {
			return w.config.wrap ? p.querySelector("[data-input]") : p
		}

		function le() {
			"object" != typeof w.config.locale && void 0 === T.l10ns[w.config.locale] && w.config.errorHandler(new Error("flatpickr: invalid locale " + w.config.locale)), w.l10n = e(e({}, T.l10ns.default), "object" == typeof w.config.locale ? w.config.locale : "default" !== w.config.locale ? T.l10ns[w.config.locale] : void 0), D.K = "(" + w.l10n.amPM[0] + "|" + w.l10n.amPM[1] + "|" + w.l10n.amPM[0].toLowerCase() + "|" + w.l10n.amPM[1].toLowerCase() + ")", void 0 === e(e({}, v), JSON.parse(JSON.stringify(p.dataset || {}))).time_24hr && void 0 === T.defaultConfig.time_24hr && (w.config.time_24hr = w.l10n.time_24hr), w.formatDate = b(w), w.parseDate = C({
				config: w.config,
				l10n: w.l10n
			})
		}

		function ce(e) {
			if("function" != typeof w.config.position) {
				if(void 0 !== w.calendarContainer) {
					pe("onPreCalendarPosition");
					var t = e || w._positionElement,
						n = Array.prototype.reduce.call(w.calendarContainer.children, (function(e, t) {
							return e + t.offsetHeight
						}), 0),
						a = w.calendarContainer.offsetWidth,
						i = w.config.position.split(" "),
						o = i[0],
						r = i.length > 1 ? i[1] : null,
						l = t.getBoundingClientRect(),
						c = window.innerHeight - l.bottom,
						s = "above" === o || "below" !== o && c < n && l.top > n,
						u = window.pageYOffset + l.top + (s ? -n - 2 : t.offsetHeight + 2);
					if(d(w.calendarContainer, "arrowTop", !s), d(w.calendarContainer, "arrowBottom", s), !w.config.inline) {
						var f = window.pageXOffset + l.left,
							m = !1,
							g = !1;
						"center" === r ? (f -= (a - l.width) / 2, m = !0) : "right" === r && (f -= a - l.width, g = !0), d(w.calendarContainer, "arrowLeft", !m && !g), d(w.calendarContainer, "arrowCenter", m), d(w.calendarContainer, "arrowRight", g);
						var p = window.document.body.offsetWidth - (window.pageXOffset + l.right),
							h = f + a > window.document.body.offsetWidth,
							v = p + a > window.document.body.offsetWidth;
						if(d(w.calendarContainer, "rightMost", h), !w.config.static)
							if(w.calendarContainer.style.top = u + "px", h)
								if(v) {
									var D = function() {
										for(var e = null, t = 0; t < document.styleSheets.length; t++) {
											var n = document.styleSheets[t];
											try {
												n.cssRules
											} catch(e) {
												continue
											}
											e = n;
											break
										}
										return null != e ? e : (a = document.createElement("style"), document.head.appendChild(a), a.sheet);
										var a
									}();
									if(void 0 === D) return;
									var b = window.document.body.offsetWidth,
										C = Math.max(0, b / 2 - a / 2),
										M = D.cssRules.length,
										y = "{left:" + l.left + "px;right:auto;}";
									d(w.calendarContainer, "rightMost", !1), d(w.calendarContainer, "centerMost", !0), D.insertRule(".flatpickr-calendar.centerMost:before,.flatpickr-calendar.centerMost:after" + y, M), w.calendarContainer.style.left = C + "px", w.calendarContainer.style.right = "auto"
								} else w.calendarContainer.style.left = "auto", w.calendarContainer.style.right = p + "px";
						else w.calendarContainer.style.left = f + "px", w.calendarContainer.style.right = "auto"
					}
				}
			} else w.config.position(w, e)
		}

		function de() {
			w.config.noCalendar || w.isMobile || (K(), De(), J())
		}

		function se() {
			w._input.focus(), -1 !== window.navigator.userAgent.indexOf("MSIE") || void 0 !== navigator.msMaxTouchPoints ? setTimeout(w.close, 0) : w.close()
		}

		function ue(e) {
			e.preventDefault(), e.stopPropagation();
			var t = f(g(e), (function(e) {
				return e.classList && e.classList.contains("flatpickr-day") && !e.classList.contains("flatpickr-disabled") && !e.classList.contains("notAllowed")
			}));
			if(void 0 !== t) {
				var n = t,
					a = w.latestSelectedDateObj = new Date(n.dateObj.getTime()),
					i = (a.getMonth() < w.currentMonth || a.getMonth() > w.currentMonth + w.config.showMonths - 1) && "range" !== w.config.mode;
				if(w.selectedDateElem = n, "single" === w.config.mode) w.selectedDates = [a];
				else if("multiple" === w.config.mode) {
					var o = ve(a);
					o ? w.selectedDates.splice(parseInt(o), 1) : w.selectedDates.push(a)
				} else "range" === w.config.mode && (2 === w.selectedDates.length && w.clear(!1, !1), w.latestSelectedDateObj = a, w.selectedDates.push(a), 0 !== M(a, w.selectedDates[0], !0) && w.selectedDates.sort((function(e, t) {
					return e.getTime() - t.getTime()
				})));
				if(S(), i) {
					var r = w.currentYear !== a.getFullYear();
					w.currentYear = a.getFullYear(), w.currentMonth = a.getMonth(), r && (pe("onYearChange"), K()), pe("onMonthChange")
				}
				if(De(), J(), be(), i || "range" === w.config.mode || 1 !== w.config.showMonths ? void 0 !== w.selectedDateElem && void 0 === w.hourElement && w.selectedDateElem && w.selectedDateElem.focus() : L(n), void 0 !== w.hourElement && void 0 !== w.hourElement && w.hourElement.focus(), w.config.closeOnSelect) {
					var l = "single" === w.config.mode && !w.config.enableTime,
						c = "range" === w.config.mode && 2 === w.selectedDates.length && !w.config.enableTime;
					(l || c) && se()
				}
				N()
			}
		}
		w.parseDate = C({
			config: w.config,
			l10n: w.l10n
		}), w._handlers = [], w.pluginElements = [], w.loadedPlugins = [], w._bind = A, w._setHoursFromDate = _, w._positionCalendar = ce, w.changeMonth = G, w.changeYear = Q, w.clear = function(e, t) {
			void 0 === e && (e = !0);
			void 0 === t && (t = !0);
			w.input.value = "", void 0 !== w.altInput && (w.altInput.value = "");
			void 0 !== w.mobileInput && (w.mobileInput.value = "");
			w.selectedDates = [], w.latestSelectedDateObj = void 0, !0 === t && (w.currentYear = w._initialDate.getFullYear(), w.currentMonth = w._initialDate.getMonth());
			if(!0 === w.config.enableTime) {
				var n = x(w.config),
					a = n.hours,
					i = n.minutes,
					o = n.seconds;
				O(a, i, o)
			}
			w.redraw(), e && pe("onChange")
		}, w.close = function() {
			w.isOpen = !1, w.isMobile || (void 0 !== w.calendarContainer && w.calendarContainer.classList.remove("open"), void 0 !== w._input && w._input.classList.remove("active"));
			pe("onClose")
		}, w._createElement = s, w.destroy = function() {
			void 0 !== w.config && pe("onDestroy");
			for(var e = w._handlers.length; e--;) w._handlers[e].remove();
			if(w._handlers = [], w.mobileInput) w.mobileInput.parentNode && w.mobileInput.parentNode.removeChild(w.mobileInput), w.mobileInput = void 0;
			else if(w.calendarContainer && w.calendarContainer.parentNode)
				if(w.config.static && w.calendarContainer.parentNode) {
					var t = w.calendarContainer.parentNode;
					if(t.lastChild && t.removeChild(t.lastChild), t.parentNode) {
						for(; t.firstChild;) t.parentNode.insertBefore(t.firstChild, t);
						t.parentNode.removeChild(t)
					}
				} else w.calendarContainer.parentNode.removeChild(w.calendarContainer);
			w.altInput && (w.input.type = "text", w.altInput.parentNode && w.altInput.parentNode.removeChild(w.altInput), delete w.altInput);
			w.input && (w.input.type = w.input._type, w.input.classList.remove("flatpickr-input"), w.input.removeAttribute("readonly"));
			["_showTimeInput", "latestSelectedDateObj", "_hideNextMonthArrow", "_hidePrevMonthArrow", "__hideNextMonthArrow", "__hidePrevMonthArrow", "isMobile", "isOpen", "selectedDateElem", "minDateHasTime", "maxDateHasTime", "days", "daysContainer", "_input", "_positionElement", "innerContainer", "rContainer", "monthNav", "todayDateElem", "calendarContainer", "weekdayContainer", "prevMonthNav", "nextMonthNav", "monthsDropdownContainer", "currentMonthElement", "currentYearElement", "navigationCurrentMonth", "selectedDateElem", "config"].forEach((function(e) {
				try {
					delete w[e]
				} catch(e) {}
			}))
		}, w.isEnabled = X, w.jumpToDate = P, w.open = function(e, t) {
			void 0 === t && (t = w._positionElement);
			if(!0 === w.isMobile) {
				if(e) {
					e.preventDefault();
					var n = g(e);
					n && n.blur()
				}
				return void 0 !== w.mobileInput && (w.mobileInput.focus(), w.mobileInput.click()), void pe("onOpen")
			}
			if(w._input.disabled || w.config.inline) return;
			var a = w.isOpen;
			w.isOpen = !0, a || (w.calendarContainer.classList.add("open"), w._input.classList.add("active"), pe("onOpen"), ce(t));
			!0 === w.config.enableTime && !0 === w.config.noCalendar && (!1 !== w.config.allowInput || void 0 !== e && w.timeContainer.contains(e.relatedTarget) || setTimeout((function() {
				return w.hourElement.select()
			}), 50))
		}, w.redraw = de, w.set = function(e, t) {
			if(null !== e && "object" == typeof e)
				for(var a in Object.assign(w.config, e), e) void 0 !== fe[a] && fe[a].forEach((function(e) {
					return e()
				}));
			else w.config[e] = t, void 0 !== fe[e] ? fe[e].forEach((function(e) {
				return e()
			})) : n.indexOf(e) > -1 && (w.config[e] = c(t));
			w.redraw(), be(!0)
		}, w.setDate = function(e, t, n) {
			void 0 === t && (t = !1);
			void 0 === n && (n = w.config.dateFormat);
			if(0 !== e && !e || e instanceof Array && 0 === e.length) return w.clear(t);
			me(e, n), w.latestSelectedDateObj = w.selectedDates[w.selectedDates.length - 1], w.redraw(), P(void 0, t), _(), 0 === w.selectedDates.length && w.clear(!1);
			be(t), t && pe("onChange")
		}, w.toggle = function(e) {
			if(!0 === w.isOpen) return w.close();
			w.open(e)
		};
		var fe = {
			locale: [le, z],
			showMonths: [q, k, $],
			minDate: [P],
			maxDate: [P],
			clickOpens: [function() {
				!0 === w.config.clickOpens ? (A(w._input, "focus", w.open), A(w._input, "click", w.open)) : (w._input.removeEventListener("focus", w.open), w._input.removeEventListener("click", w.open))
			}]
		};

		function me(e, t) {
			var n = [];
			if(e instanceof Array) n = e.map((function(e) {
				return w.parseDate(e, t)
			}));
			else if(e instanceof Date || "number" == typeof e) n = [w.parseDate(e, t)];
			else if("string" == typeof e) switch(w.config.mode) {
				case "single":
				case "time":
					n = [w.parseDate(e, t)];
					break;
				case "multiple":
					n = e.split(w.config.conjunction).map((function(e) {
						return w.parseDate(e, t)
					}));
					break;
				case "range":
					n = e.split(w.l10n.rangeSeparator).map((function(e) {
						return w.parseDate(e, t)
					}))
			} else w.config.errorHandler(new Error("Invalid date supplied: " + JSON.stringify(e)));
			w.selectedDates = w.config.allowInvalidPreload ? n : n.filter((function(e) {
				return e instanceof Date && X(e, !1)
			})), "range" === w.config.mode && w.selectedDates.sort((function(e, t) {
				return e.getTime() - t.getTime()
			}))
		}

		function ge(e) {
			return e.slice().map((function(e) {
				return "string" == typeof e || "number" == typeof e || e instanceof Date ? w.parseDate(e, void 0, !0) : e && "object" == typeof e && e.from && e.to ? {
					from: w.parseDate(e.from, void 0),
					to: w.parseDate(e.to, void 0)
				} : e
			})).filter((function(e) {
				return e
			}))
		}

		function pe(e, t) {
			if(void 0 !== w.config) {
				var n = w.config[e];
				if(void 0 !== n && n.length > 0)
					for(var a = 0; n[a] && a < n.length; a++) n[a](w.selectedDates, w.input.value, w, t);
				"onChange" === e && (w.input.dispatchEvent(he("change")), w.input.dispatchEvent(he("input")))
			}
		}

		function he(e) {
			var t = document.createEvent("Event");
			return t.initEvent(e, !0, !0), t
		}

		function ve(e) {
			for(var t = 0; t < w.selectedDates.length; t++)
				if(0 === M(w.selectedDates[t], e)) return "" + t;
			return !1
		}

		function De() {
			w.config.noCalendar || w.isMobile || !w.monthNav || (w.yearElements.forEach((function(e, t) {
				var n = new Date(w.currentYear, w.currentMonth, 1);
				n.setMonth(w.currentMonth + t), w.config.showMonths > 1 || "static" === w.config.monthSelectorType ? w.monthElements[t].textContent = h(n.getMonth(), w.config.shorthandCurrentMonth, w.l10n) + " " : w.monthsDropdownContainer.value = n.getMonth().toString(), e.value = n.getFullYear().toString()
			})), w._hidePrevMonthArrow = void 0 !== w.config.minDate && (w.currentYear === w.config.minDate.getFullYear() ? w.currentMonth <= w.config.minDate.getMonth() : w.currentYear < w.config.minDate.getFullYear()), w._hideNextMonthArrow = void 0 !== w.config.maxDate && (w.currentYear === w.config.maxDate.getFullYear() ? w.currentMonth + 1 > w.config.maxDate.getMonth() : w.currentYear > w.config.maxDate.getFullYear()))
		}

		function we(e) {
			return w.selectedDates.map((function(t) {
				return w.formatDate(t, e)
			})).filter((function(e, t, n) {
				return "range" !== w.config.mode || w.config.enableTime || n.indexOf(e) === t
			})).join("range" !== w.config.mode ? w.config.conjunction : w.l10n.rangeSeparator)
		}

		function be(e) {
			void 0 === e && (e = !0), void 0 !== w.mobileInput && w.mobileFormatStr && (w.mobileInput.value = void 0 !== w.latestSelectedDateObj ? w.formatDate(w.latestSelectedDateObj, w.mobileFormatStr) : ""), w.input.value = we(w.config.dateFormat), void 0 !== w.altInput && (w.altInput.value = we(w.config.altFormat)), !1 !== e && pe("onValueUpdate")
		}

		function Ce(e) {
			var t = g(e),
				n = w.prevMonthNav.contains(t),
				a = w.nextMonthNav.contains(t);
			n || a ? G(n ? -1 : 1) : w.yearElements.indexOf(t) >= 0 ? t.select() : t.classList.contains("arrowUp") ? w.changeYear(w.currentYear + 1) : t.classList.contains("arrowDown") && w.changeYear(w.currentYear - 1)
		}
		return function() {
			w.element = w.input = p, w.isOpen = !1,
				function() {
					var t = ["wrap", "weekNumbers", "allowInput", "allowInvalidPreload", "clickOpens", "time_24hr", "enableTime", "noCalendar", "altInput", "shorthandCurrentMonth", "inline", "static", "enableSeconds", "disableMobile"],
						i = e(e({}, JSON.parse(JSON.stringify(p.dataset || {}))), v),
						o = {};
					w.config.parseDate = i.parseDate, w.config.formatDate = i.formatDate, Object.defineProperty(w.config, "enable", {
						get: function() {
							return w.config._enable
						},
						set: function(e) {
							w.config._enable = ge(e)
						}
					}), Object.defineProperty(w.config, "disable", {
						get: function() {
							return w.config._disable
						},
						set: function(e) {
							w.config._disable = ge(e)
						}
					});
					var r = "time" === i.mode;
					if(!i.dateFormat && (i.enableTime || r)) {
						var l = T.defaultConfig.dateFormat || a.dateFormat;
						o.dateFormat = i.noCalendar || r ? "H:i" + (i.enableSeconds ? ":S" : "") : l + " H:i" + (i.enableSeconds ? ":S" : "")
					}
					if(i.altInput && (i.enableTime || r) && !i.altFormat) {
						var d = T.defaultConfig.altFormat || a.altFormat;
						o.altFormat = i.noCalendar || r ? "h:i" + (i.enableSeconds ? ":S K" : " K") : d + " h:i" + (i.enableSeconds ? ":S" : "") + " K"
					}
					Object.defineProperty(w.config, "minDate", {
						get: function() {
							return w.config._minDate
						},
						set: oe("min")
					}), Object.defineProperty(w.config, "maxDate", {
						get: function() {
							return w.config._maxDate
						},
						set: oe("max")
					});
					var s = function(e) {
						return function(t) {
							w.config["min" === e ? "_minTime" : "_maxTime"] = w.parseDate(t, "H:i:S")
						}
					};
					Object.defineProperty(w.config, "minTime", {
						get: function() {
							return w.config._minTime
						},
						set: s("min")
					}), Object.defineProperty(w.config, "maxTime", {
						get: function() {
							return w.config._maxTime
						},
						set: s("max")
					}), "time" === i.mode && (w.config.noCalendar = !0, w.config.enableTime = !0);
					Object.assign(w.config, o, i);
					for(var u = 0; u < t.length; u++) w.config[t[u]] = !0 === w.config[t[u]] || "true" === w.config[t[u]];
					n.filter((function(e) {
						return void 0 !== w.config[e]
					})).forEach((function(e) {
						w.config[e] = c(w.config[e] || []).map(E)
					})), w.isMobile = !w.config.disableMobile && !w.config.inline && "single" === w.config.mode && !w.config.disable.length && !w.config.enable && !w.config.weekNumbers && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
					for(u = 0; u < w.config.plugins.length; u++) {
						var f = w.config.plugins[u](w) || {};
						for(var m in f) n.indexOf(m) > -1 ? w.config[m] = c(f[m]).map(E).concat(w.config[m]) : void 0 === i[m] && (w.config[m] = f[m])
					}
					i.altInputClass || (w.config.altInputClass = re().className + " " + w.config.altInputClass);
					pe("onParseConfig")
				}(), le(),
				function() {
					if(w.input = re(), !w.input) return void w.config.errorHandler(new Error("Invalid input element specified"));
					w.input._type = w.input.type, w.input.type = "text", w.input.classList.add("flatpickr-input"), w._input = w.input, w.config.altInput && (w.altInput = s(w.input.nodeName, w.config.altInputClass), w._input = w.altInput, w.altInput.placeholder = w.input.placeholder, w.altInput.disabled = w.input.disabled, w.altInput.required = w.input.required, w.altInput.tabIndex = w.input.tabIndex, w.altInput.type = "text", w.input.setAttribute("type", "hidden"), !w.config.static && w.input.parentNode && w.input.parentNode.insertBefore(w.altInput, w.input.nextSibling));
					w.config.allowInput || w._input.setAttribute("readonly", "readonly");
					w._positionElement = w.config.positionElement || w._input
				}(),
				function() {
					w.selectedDates = [], w.now = w.parseDate(w.config.now) || new Date;
					var e = w.config.defaultDate || ("INPUT" !== w.input.nodeName && "TEXTAREA" !== w.input.nodeName || !w.input.placeholder || w.input.value !== w.input.placeholder ? w.input.value : null);
					e && me(e, w.config.dateFormat);
					w._initialDate = w.selectedDates.length > 0 ? w.selectedDates[0] : w.config.minDate && w.config.minDate.getTime() > w.now.getTime() ? w.config.minDate : w.config.maxDate && w.config.maxDate.getTime() < w.now.getTime() ? w.config.maxDate : w.now, w.currentYear = w._initialDate.getFullYear(), w.currentMonth = w._initialDate.getMonth(), w.selectedDates.length > 0 && (w.latestSelectedDateObj = w.selectedDates[0]);
					void 0 !== w.config.minTime && (w.config.minTime = w.parseDate(w.config.minTime, "H:i"));
					void 0 !== w.config.maxTime && (w.config.maxTime = w.parseDate(w.config.maxTime, "H:i"));
					w.minDateHasTime = !!w.config.minDate && (w.config.minDate.getHours() > 0 || w.config.minDate.getMinutes() > 0 || w.config.minDate.getSeconds() > 0), w.maxDateHasTime = !!w.config.maxDate && (w.config.maxDate.getHours() > 0 || w.config.maxDate.getMinutes() > 0 || w.config.maxDate.getSeconds() > 0)
				}(), w.utils = {
					getDaysInMonth: function(e, t) {
						return void 0 === e && (e = w.currentMonth), void 0 === t && (t = w.currentYear), 1 === e && (t % 4 == 0 && t % 100 != 0 || t % 400 == 0) ? 29 : w.l10n.daysInMonth[e]
					}
				}, w.isMobile || function() {
					var e = window.document.createDocumentFragment();
					if(w.calendarContainer = s("div", "flatpickr-calendar"), w.calendarContainer.tabIndex = -1, !w.config.noCalendar) {
						if(e.appendChild((w.monthNav = s("div", "flatpickr-months"), w.yearElements = [], w.monthElements = [], w.prevMonthNav = s("span", "flatpickr-prev-month"), w.prevMonthNav.innerHTML = w.config.prevArrow, w.nextMonthNav = s("span", "flatpickr-next-month"), w.nextMonthNav.innerHTML = w.config.nextArrow, q(), Object.defineProperty(w, "_hidePrevMonthArrow", {
								get: function() {
									return w.__hidePrevMonthArrow
								},
								set: function(e) {
									w.__hidePrevMonthArrow !== e && (d(w.prevMonthNav, "flatpickr-disabled", e), w.__hidePrevMonthArrow = e)
								}
							}), Object.defineProperty(w, "_hideNextMonthArrow", {
								get: function() {
									return w.__hideNextMonthArrow
								},
								set: function(e) {
									w.__hideNextMonthArrow !== e && (d(w.nextMonthNav, "flatpickr-disabled", e), w.__hideNextMonthArrow = e)
								}
							}), w.currentYearElement = w.yearElements[0], De(), w.monthNav)), w.innerContainer = s("div", "flatpickr-innerContainer"), w.config.weekNumbers) {
							var t = function() {
									w.calendarContainer.classList.add("hasWeeks");
									var e = s("div", "flatpickr-weekwrapper");
									e.appendChild(s("span", "flatpickr-weekday", w.l10n.weekAbbreviation));
									var t = s("div", "flatpickr-weeks");
									return e.appendChild(t), {
										weekWrapper: e,
										weekNumbers: t
									}
								}(),
								n = t.weekWrapper,
								a = t.weekNumbers;
							w.innerContainer.appendChild(n), w.weekNumbers = a, w.weekWrapper = n
						}
						w.rContainer = s("div", "flatpickr-rContainer"), w.rContainer.appendChild($()), w.daysContainer || (w.daysContainer = s("div", "flatpickr-days"), w.daysContainer.tabIndex = -1), J(), w.rContainer.appendChild(w.daysContainer), w.innerContainer.appendChild(w.rContainer), e.appendChild(w.innerContainer)
					}
					w.config.enableTime && e.appendChild(function() {
						w.calendarContainer.classList.add("hasTime"), w.config.noCalendar && w.calendarContainer.classList.add("noCalendar");
						var e = x(w.config);
						w.timeContainer = s("div", "flatpickr-time"), w.timeContainer.tabIndex = -1;
						var t = s("span", "flatpickr-time-separator", ":"),
							n = m("flatpickr-hour", {
								"aria-label": w.l10n.hourAriaLabel
							});
						w.hourElement = n.getElementsByTagName("input")[0];
						var a = m("flatpickr-minute", {
							"aria-label": w.l10n.minuteAriaLabel
						});
						w.minuteElement = a.getElementsByTagName("input")[0], w.hourElement.tabIndex = w.minuteElement.tabIndex = -1, w.hourElement.value = o(w.latestSelectedDateObj ? w.latestSelectedDateObj.getHours() : w.config.time_24hr ? e.hours : function(e) {
							switch(e % 24) {
								case 0:
								case 12:
									return 12;
								default:
									return e % 12
							}
						}(e.hours)), w.minuteElement.value = o(w.latestSelectedDateObj ? w.latestSelectedDateObj.getMinutes() : e.minutes), w.hourElement.setAttribute("step", w.config.hourIncrement.toString()), w.minuteElement.setAttribute("step", w.config.minuteIncrement.toString()), w.hourElement.setAttribute("min", w.config.time_24hr ? "0" : "1"), w.hourElement.setAttribute("max", w.config.time_24hr ? "23" : "12"), w.hourElement.setAttribute("maxlength", "2"), w.minuteElement.setAttribute("min", "0"), w.minuteElement.setAttribute("max", "59"), w.minuteElement.setAttribute("maxlength", "2"), w.timeContainer.appendChild(n), w.timeContainer.appendChild(t), w.timeContainer.appendChild(a), w.config.time_24hr && w.timeContainer.classList.add("time24hr");
						if(w.config.enableSeconds) {
							w.timeContainer.classList.add("hasSeconds");
							var i = m("flatpickr-second");
							w.secondElement = i.getElementsByTagName("input")[0], w.secondElement.value = o(w.latestSelectedDateObj ? w.latestSelectedDateObj.getSeconds() : e.seconds), w.secondElement.setAttribute("step", w.minuteElement.getAttribute("step")), w.secondElement.setAttribute("min", "0"), w.secondElement.setAttribute("max", "59"), w.secondElement.setAttribute("maxlength", "2"), w.timeContainer.appendChild(s("span", "flatpickr-time-separator", ":")), w.timeContainer.appendChild(i)
						}
						w.config.time_24hr || (w.amPM = s("span", "flatpickr-am-pm", w.l10n.amPM[r((w.latestSelectedDateObj ? w.hourElement.value : w.config.defaultHour) > 11)]), w.amPM.title = w.l10n.toggleTitle, w.amPM.tabIndex = -1, w.timeContainer.appendChild(w.amPM));
						return w.timeContainer
					}());
					d(w.calendarContainer, "rangeMode", "range" === w.config.mode), d(w.calendarContainer, "animate", !0 === w.config.animate), d(w.calendarContainer, "multiMonth", w.config.showMonths > 1), w.calendarContainer.appendChild(e);
					var i = void 0 !== w.config.appendTo && void 0 !== w.config.appendTo.nodeType;
					if((w.config.inline || w.config.static) && (w.calendarContainer.classList.add(w.config.inline ? "inline" : "static"), w.config.inline && (!i && w.element.parentNode ? w.element.parentNode.insertBefore(w.calendarContainer, w._input.nextSibling) : void 0 !== w.config.appendTo && w.config.appendTo.appendChild(w.calendarContainer)), w.config.static)) {
						var l = s("div", "flatpickr-wrapper");
						w.element.parentNode && w.element.parentNode.insertBefore(l, w.element), l.appendChild(w.element), w.altInput && l.appendChild(w.altInput), l.appendChild(w.calendarContainer)
					}
					w.config.static || w.config.inline || (void 0 !== w.config.appendTo ? w.config.appendTo : window.document.body).appendChild(w.calendarContainer)
				}(),
				function() {
					w.config.wrap && ["open", "close", "toggle", "clear"].forEach((function(e) {
						Array.prototype.forEach.call(w.element.querySelectorAll("[data-" + e + "]"), (function(t) {
							return A(t, "click", w[e])
						}))
					}));
					if(w.isMobile) return void
					function() {
						var e = w.config.enableTime ? w.config.noCalendar ? "time" : "datetime-local" : "date";
						w.mobileInput = s("input", w.input.className + " flatpickr-mobile"), w.mobileInput.tabIndex = 1, w.mobileInput.type = e, w.mobileInput.disabled = w.input.disabled, w.mobileInput.required = w.input.required, w.mobileInput.placeholder = w.input.placeholder, w.mobileFormatStr = "datetime-local" === e ? "Y-m-d\\TH:i:S" : "date" === e ? "Y-m-d" : "H:i:S", w.selectedDates.length > 0 && (w.mobileInput.defaultValue = w.mobileInput.value = w.formatDate(w.selectedDates[0], w.mobileFormatStr));
						w.config.minDate && (w.mobileInput.min = w.formatDate(w.config.minDate, "Y-m-d"));
						w.config.maxDate && (w.mobileInput.max = w.formatDate(w.config.maxDate, "Y-m-d"));
						w.input.getAttribute("step") && (w.mobileInput.step = String(w.input.getAttribute("step")));
						w.input.type = "hidden", void 0 !== w.altInput && (w.altInput.type = "hidden");
						try {
							w.input.parentNode && w.input.parentNode.insertBefore(w.mobileInput, w.input.nextSibling)
						} catch(e) {}
						A(w.mobileInput, "change", (function(e) {
							w.setDate(g(e).value, !1, w.mobileFormatStr), pe("onChange"), pe("onClose")
						}))
					}();
					var e = l(ie, 50);
					w._debouncedChange = l(N, 300), w.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent) && A(w.daysContainer, "mouseover", (function(e) {
						"range" === w.config.mode && ae(g(e))
					}));
					A(window.document.body, "keydown", ne), w.config.inline || w.config.static || A(window, "resize", e);
					void 0 !== window.ontouchstart ? A(window.document, "touchstart", Z) : A(window.document, "mousedown", Z);
					A(window.document, "focus", Z, {
						capture: !0
					}), !0 === w.config.clickOpens && (A(w._input, "focus", w.open), A(w._input, "click", w.open));
					void 0 !== w.daysContainer && (A(w.monthNav, "click", Ce), A(w.monthNav, ["keyup", "increment"], F), A(w.daysContainer, "click", ue));
					if(void 0 !== w.timeContainer && void 0 !== w.minuteElement && void 0 !== w.hourElement) {
						var t = function(e) {
							return g(e).select()
						};
						A(w.timeContainer, ["increment"], I), A(w.timeContainer, "blur", I, {
							capture: !0
						}), A(w.timeContainer, "click", Y), A([w.hourElement, w.minuteElement], ["focus", "click"], t), void 0 !== w.secondElement && A(w.secondElement, "focus", (function() {
							return w.secondElement && w.secondElement.select()
						})), void 0 !== w.amPM && A(w.amPM, "click", (function(e) {
							I(e), N()
						}))
					}
					w.config.allowInput && A(w._input, "blur", te)
				}(), (w.selectedDates.length || w.config.noCalendar) && (w.config.enableTime && _(w.config.noCalendar ? w.latestSelectedDateObj : void 0), be(!1)), k();
			var t = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
			!w.isMobile && t && ce(), pe("onReady")
		}(), w
	}

	function k(e, t) {
		for(var n = Array.prototype.slice.call(e).filter((function(e) {
				return e instanceof HTMLElement
			})), a = [], i = 0; i < n.length; i++) {
			var o = n[i];
			try {
				if(null !== o.getAttribute("data-fp-omit")) continue;
				void 0 !== o._flatpickr && (o._flatpickr.destroy(), o._flatpickr = void 0), o._flatpickr = E(o, t || {}), a.push(o._flatpickr)
			} catch(e) {
				console.error(e)
			}
		}
		return 1 === a.length ? a[0] : a
	}
	"undefined" != typeof HTMLElement && "undefined" != typeof HTMLCollection && "undefined" != typeof NodeList && (HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function(e) {
		return k(this, e)
	}, HTMLElement.prototype.flatpickr = function(e) {
		return k([this], e)
	});
	var T = function(e, t) {
		return "string" == typeof e ? k(window.document.querySelectorAll(e), t) : e instanceof Node ? k([e], t) : k(e, t)
	};
	return T.defaultConfig = {}, T.l10ns = {
		en: e({}, i),
		default: e({}, i)
	}, T.localize = function(t) {
		T.l10ns.default = e(e({}, T.l10ns.default), t)
	}, T.setDefaults = function(t) {
		T.defaultConfig = e(e({}, T.defaultConfig), t)
	}, T.parseDate = C({}), T.formatDate = b({}), T.compareDates = M, "undefined" != typeof jQuery && void 0 !== jQuery.fn && (jQuery.fn.flatpickr = function(e) {
		return k(this, e)
	}), Date.prototype.fp_incr = function(e) {
		return new Date(this.getFullYear(), this.getMonth(), this.getDate() + ("string" == typeof e ? parseInt(e, 10) : e))
	}, "undefined" != typeof window && (window.flatpickr = T), T
}));